                     Release Note for BCM5788 BOOT Code Firmware
                    ==================================================
Version 3.06: 

  1. Writes firmware id to shared memory rx_cpu_firmware_id field
  
    Enhancement:
      Phase1 & Phase2 code will write the firmware id to rx_cpu_firmware_id.
      
    Eng. Notes:
      bootcode phase1 will write value 0xfefe0008 to shared memory 0xc0c.
      bootcode phase2 will write value 0xfefe0009 to shared memory 0xc0c.
      When phase2 executes properly, the value phase1 wrote should be
      overwritten by phase2 code.  
      
Version 3.05:

  1. Restored phy type in manufacture data block
  
    Problem: 
      PXE code needed this field to determine the phy type
    
    Fix: 
      Hard coded this field to be copper type
      
Version 3.04:
  
  1. Removed TX CPU access
  
    Problem: 
      There was an access to TX CPU before halt instruction.
      
    Cause:   
      When there is no main power and WOL is disabled, the CPU will intend 
      to shutdown itself to save power. Before the halt instructionm, 
      there was an access to TX CPU to halt TX CPU, which does not exist 
      in 5705/Shasta family device.
      
    Fix:     
      Removed the TX CPU access.
      
    Impact:  
      None
    
  2. Reserved more space for stack area.
  
    Problem: 
      Incoming data could potentially corrupt the phase1 bootcode before 
      the phase2 bootcode loading is done. 
      
    Cause:   
      After initializing mbuf address, size registers and posting the 
      signature, the phase1 bootcode is still active and busy loading 2nd 
      phase bootcode. Before the 2nd phase loading is complete, and if 
      there is data coming in, it may corrupt the phase1 bootcode since
      the phase1 bootcode was sitting at rx buffer area.
      
    Fix:     
      Change phase1 code area to the protected area.
            
Version 3.03:

  1. Changed VPD data DEFALT_PART_NUMBER
  
    Problem: 
      VPD data DEFAULT_PART_NUMBER was showing 5705 instead of 5788.

	Cause:   
	  The source code was shared between 5705 and 5788.

	Fix:     
	  Broke the sharing and changed the default DEFAULT_PART_NUMBER with 
	  5788.

  2. Fixed WOL issue
    
    Problem: 
      After using restart option in Windows and restart computer to DOS. 
      Then, turn off the power, WOL will not work.

    Cause:   
      Since there was no power lose from Windows to DOS, the signature 
      deposited by driver was not cleared. Therefore, when power lose from 
      DOS, bootcode sees the WOL signature and was bypassing the WoL 
      initialization.
      
    Fix:     
      Changed bootcode to clear WoL signature if the startup does not have 
      driver signature.
      
    CQ#: 00008243
    

Version 3.02: 

  1. Get phy id from phy register instead of NVRAM configuration

    Enhancement: 
      Get phy id from phy register instead of NVRAM configuration

    Cause:
      Originally, the phy id field in shared memory was read from NVRAM
      configuration. User could changed it any way they wanted and
      driver cannot rely on the content to perform as correct judgements

    Change:
      The phy id in shared memory will be read from phy register instead
      of NVRAM field.

  2. Removed Phy 1.8v option
  
    Problem:
      Earlier bootcode contains 5701 product code which will
      cause a glitch in the PHY clock and could cause PHY to lock-up. 
      
    Cause:
      The code was carry over from 5701 in the old day was not needed
      in newer product.
    
    Fix: 
      Removed unnecessary code that could cause Phy to lock-up.
      
  3. Added workaround for VPD glitch

    Problem:
      A false glitch can happen intermittently when host is accessing MII
      registers.

    Cause:
      For new rev. chip, the lay out was too close between MII signals
      VPD event signal that may cause crosstalk. 

    Fix:
      Put a double read for VPD event. If the event self clears without
      firmware acknowledge, it is hardware glitch.


Version 3.01: 

  1. Lower voltage for 2.5v.
  
    Problem: the actual 2.5v regulator output is 2.66v.
    Cause:   The actual voltage level is higher than the specification
             indicates.
    Fix:     Changed the regulator setting to lower the voltage. 


  2. Enable phy in cold reset.

    Problem: 
      Cannot access MAC register if phy is in powerdown state. 
      
    Cause:   
      When Windows is restarting, the driver go through the shutdown 
      routine. When WoL is disabled, it turns off phy completely by 
      putting phy to powerdown mode. When it restarts, the main power,
      3.3 volt is stable. Only rely on PCI reset, the device does not
      generating power on reset; thus phy is not reset and still in 
      powerdown state. To access MAC registers, phy clock is required and
      we need to access the register for MAC address initialization.
      
    Fix:     
      If it is cold reset, it will put phy to 10mbps to enable the clock 
      before accessing MAC registers. This also helps to reduce power 
      consumption by putting at lowest speed. The phy will eventually get 
      reset at phase 2 code.
             
Version 3.00:
    Initial version (Based on 5705 V3.14)